home *** CD-ROM | disk | FTP | other *** search
/ PC World 2007 January / PCWorld_2007-01_cd.bin / v cisle / autoit / autoit-v3.2.0.1-setup.exe / Examples / Helpfile / StringRegExpGUI.au3 < prev    next >
Text File  |  2006-06-17  |  7KB  |  185 lines

  1. #include <GuiConstants.au3>
  2. opt("RunErrorsFatal", 0)
  3. Dim $initialDir = "C:\"
  4. Global $s_Pattern = "(.*)"
  5. Readini()
  6. GUICreate("StringRegExp Original Design GUI -by w0uter, modified Steve8tch", 550, 570, (@DesktopWidth - 550) / 2, (@DesktopHeight - 570) / 2)
  7. GUICtrlCreateGroup("The pattern   -  $ptn", 10, 210, 530, 60)
  8. GUICtrlCreateGroup("Output", 140, 280, 400, 280)
  9. GUICtrlCreateGroup("Return", 10, 280, 120, 100)
  10. GUICtrlCreateGroup("@Error   @Extended", 10, 390, 120, 50)
  11. GUICtrlCreateGroup("StringRegExp Help", 10, 450, 120, 50)
  12. $h_Radio_0 = GUICtrlCreateRadio("True/False", 20, 300, 100, 20)
  13. $h_Radio_1 = GUICtrlCreateRadio("Array with the text", 20, 321, 100, 27)
  14. $h_Radio_3 = GUICtrlCreateRadio("Array of all results", 20, 350, 100, 20)
  15. GUICtrlSetState($h_Radio_3, $GUI_CHECKED)
  16. $h_Indummy = GUICtrlCreateEdit("", 1020, 1040, 510, 150, BitOR($ES_WANTRETURN, $WS_VSCROLL, $WS_HSCROLL, $ES_AUTOVSCROLL, $ES_AUTOHSCROLL))
  17. $h_tab = GUICtrlCreateTab(10, 10, 530, 190)
  18. $h_tabitem1 = GUICtrlCreateTabItem("Copy and Paste the text to check - $str")
  19. $h_In1 = GUICtrlCreateEdit("", 20, 40, 510, 150, BitOR($ES_WANTRETURN, $WS_VSCROLL, $WS_HSCROLL, $ES_AUTOVSCROLL, $ES_AUTOHSCROLL))
  20.  
  21. $h_tabitem2 = GUICtrlCreateTabItem("Load text from File")
  22. $h_Brwse = GUICtrlCreateButton("Browse for file", 20, 40, 100, 20)
  23. $h_fileIn = GUICtrlCreateEdit("", 130, 40, 400, 20, BitOR($ES_WANTRETURN, $WS_HSCROLL, $ES_AUTOHSCROLL))
  24. $h_In2 = GUICtrlCreateEdit("", 20, 70, 510, 120, BitOR($ES_WANTRETURN, $WS_VSCROLL, $WS_HSCROLL, $ES_AUTOVSCROLL, $ES_AUTOHSCROLL))
  25.  
  26. GUICtrlCreateTabItem("");
  27. $h_Out = GUICtrlCreateEdit("", 150, 296, 380, 262, BitOR($ES_WANTRETURN, $WS_VSCROLL, $WS_HSCROLL, $ES_AUTOVSCROLL, $ES_AUTOHSCROLL))
  28. $h_Pattern = GUICtrlCreateCombo("", 70, 230, 430, 30)
  29. GUICtrlSetFont($h_Pattern, 14)
  30. GUICtrlSetData($h_Pattern, $s_Pattern, "(.*)")
  31. $h_Pattern_add = GUICtrlCreateButton("Add", 504, 225, 30, 18)
  32. $h_Pattern_del = GUICtrlCreateButton("Del", 504, 245, 30, 18)
  33. $h_test = GUICtrlCreateButton("Test", 20, 235, 40, 20)
  34. $h_Err = GUICtrlCreateInput("", 20, 410, 40, 20, $ES_READONLY)
  35. $h_Ext = GUICtrlCreateInput("", 70, 410, 50, 20, $ES_READONLY)
  36. $h_Help = GUICtrlCreateButton("HELP", 20, 468, 100, 24)
  37. $h_Exit = GUICtrlCreateButton("Exit", 10, 510, 120, 50)
  38. $v_Reg_Old = 0
  39. Global $h_In = $h_In1
  40. GUISetState()
  41. While 1
  42.     $msg = GUIGetMsg()
  43.     Select
  44.         Case $msg = $GUI_EVENT_CLOSE
  45.             Exit
  46.         Case $msg = $h_test
  47.             _Valid()
  48.         Case $msg = $h_Exit
  49.             Exit
  50.         Case $msg = $h_Brwse
  51.             $filepath = FileOpenDialog("Select text file to test", $initialDir, "Text files (*.*)", 1)
  52.             $initialDir = StringTrimRight($filepath, StringInStr($filepath, "\", "-1"))
  53.             GUICtrlSetData($h_fileIn, $filepath)
  54.             WaitMessage("Loading file..")
  55.             $str2 = FileRead($filepath)
  56.             WaitMessage("File loaded.." & @CRLF & "updating display")
  57.             GUICtrlSetData($h_In2, $str2)
  58.             WaitMessageOff()
  59.         Case $msg = $h_tab
  60.             If GUICtrlRead($h_tab) = 0 Then
  61.                 $h_In = $h_In1
  62.             Else
  63.                 $h_In = $h_In2
  64.             EndIf
  65.         Case $msg = $h_Pattern_add
  66.             Pattern_Add()
  67.             
  68.         Case $msg = $h_Pattern_del
  69.             Pattern_del()
  70.             
  71.         Case $msg = $h_Help
  72.             $helppath = StringLeft(@AutoItExe, StringInStr(@AutoItExe, "\", 0, -1))
  73.             Run($helppath & "Autoit3Help.exe StringRegExp")
  74.             If @error = 1 Then MsgBox(0, "error", "Cannot fing help file - sorry")
  75.         Case Else
  76.             ;;
  77.     EndSelect
  78. WEnd
  79.  
  80. Func _Valid()
  81.     WaitMessage("Performing test..")
  82.     $v_Reg = StringRegExp(GUICtrlRead($h_In), GUICtrlRead($h_Pattern), _Option())
  83.     Dim $v_EE[2] = [@error, @extended]
  84.     If $v_EE[0] = 2 Then
  85.         GUICtrlSetColor($h_Pattern, 0xFF0000)
  86.         GUICtrlSetData($h_Err, $v_EE[0])
  87.         GUICtrlSetData($h_Out, "")
  88.     Else
  89.         GUICtrlSetColor($h_Pattern, 0)
  90.         GUICtrlSetData($h_Err, $v_EE[0])
  91.     EndIf
  92.     GUICtrlSetData($h_Ext, $v_EE[1])
  93.     WaitMessage("Test complete.." & @CRLF & "updating display")
  94.     If $v_EE[0] <> 2 Then
  95.         $v_Check = 0
  96.         If UBound($v_Reg) <> UBound($v_Reg_Old) Then
  97.             $v_Check = 1
  98.         Else
  99.             For $i = 0 To UBound($v_Reg) - 1
  100.                 If $v_Reg[$i] <> $v_Reg_Old[$i] Then $v_Check = 1
  101.             Next
  102.         EndIf
  103.         If $v_Check = 1 Then
  104.             GUICtrlSetData($h_Out, "")
  105.             $h_output = ""
  106.             $x = UBound($v_Reg)
  107.             If $x < 10 Then
  108.                 $s_lgth = 1
  109.             ElseIf $x < 100 Then
  110.                 $s_lgth = 2
  111.             ElseIf $x < 1000 Then
  112.                 $s_lgth = 3
  113.             ElseIf $x < 10000 Then
  114.                 $s_lgth = 4
  115.             ElseIf $x < 10000 Then
  116.                 $s_lgth = 5
  117.             Else
  118.                 $s_lgth = 6
  119.             EndIf
  120.             If UBound($v_Reg) Then
  121.                 For $i = 0 To UBound($v_Reg) - 1
  122.                     $h_output &= StringFormat("%0" & $s_lgth & "i", $i) & ' => ' & $v_Reg[$i] & @CRLF
  123.                 Next
  124.                 GUICtrlSetData($h_Out, $h_output)
  125.             Else
  126.                 GUICtrlSetData($h_Out, $v_Reg)
  127.             EndIf
  128.         EndIf
  129.     EndIf
  130.     WaitMessageOff()
  131.     $v_Reg_Old = $v_Reg
  132.     StringRegExp('', Random(0x80000000, 0x7FFFFFFF), 1)
  133. EndFunc   ;==>_Valid
  134. Func _Option()
  135.     Switch $GUI_CHECKED
  136.         Case GUICtrlRead($h_Radio_0)
  137.             Return 0
  138.         Case GUICtrlRead($h_Radio_1)
  139.             Return 1
  140.         Case GUICtrlRead($h_Radio_3)
  141.             Return 3
  142.     EndSwitch
  143. EndFunc   ;==>_Option
  144. Func Readini()
  145.     If FileExists(@ScriptDir & "\StringRegExpGUIPattern.ini") = 0 Then
  146.         $h_x = FileOpen(@ScriptDir & "\StringRegExpGUIPattern.ini", 1)
  147.         FileWriteLine($h_x, "[do not delete the file - Patterns are listed below]")
  148.         FileWriteLine($h_x, "(.*)##~##")
  149.         FileClose($h_x)
  150.     Else
  151.         $s_Pattern = FileRead(@ScriptDir & "\StringRegExpGUIPattern.ini")
  152.         $s_Pattern = StringTrimLeft($s_Pattern, StringInStr($s_Pattern, @CRLF) + 1)
  153.         $s_Pattern = StringReplace($s_Pattern, "##~##" & @CRLF, "|")
  154.     EndIf
  155. EndFunc   ;==>Readini
  156. Func Pattern_del()
  157.     $s_ini = FileRead(@ScriptDir & "\StringRegExpGUIPattern.ini")
  158.     $h_x = FileOpen(@ScriptDir & "\StringRegExpGUIPattern.ini", 2)
  159.     If GUICtrlRead($h_Pattern) = "" Then
  160.         $s_ini = StringReplace($s_ini, "##~##" & @CRLF & "##~##", "##~##")
  161.         $s_ini = StringReplace($s_ini, @CRLF & @CRLF, @CRLF)
  162.     Else
  163.         $s_ini = StringReplace($s_ini, GUICtrlRead($h_Pattern) & "##~##", "")
  164.         $s_ini = StringReplace($s_ini, @CRLF & @CRLF, @CRLF)
  165.     EndIf
  166.     FileWrite($h_x, $s_ini)
  167.     FileClose($h_x)
  168.     Readini()
  169.     GUICtrlSetData($h_Pattern, "|" & $s_Pattern, "(.*)")
  170. EndFunc   ;==>Pattern_del
  171. Func Pattern_Add()
  172.     $h_x = FileOpen(@ScriptDir & "\StringRegExpGUIPattern.ini", 1)
  173.     FileWriteLine($h_x, GUICtrlRead($h_Pattern) & "##~##")
  174.     FileClose($h_x)
  175.     Readini()
  176.     GUICtrlSetData($h_Pattern, "|" & $s_Pattern, GUICtrlRead($h_Pattern))
  177. EndFunc   ;==>Pattern_Add
  178. Func WaitMessage($s_txt)
  179.     $a_pos = WinGetPos("StringRegExp Original Design GUI -by w0uter, modified Steve8tch")
  180.     SplashTextOn("Please wait", $s_txt, 120, 40, $a_pos[0] + 215, $a_pos[1] + 200)
  181.     
  182. EndFunc   ;==>WaitMessage
  183. Func WaitMessageOff()
  184.     SplashOff()
  185. EndFunc   ;==>WaitMessageOff